Flex 2.0.1 Extending the Tab Navigator
February 5, 2007
Well here is my version of an extended Flex tab navigator. I implemented a proper proxy image for the drag operations. Dragging between navigators (very handy for larger applications). Got your standard close button happening, optional of course (as a style). Click an item in the popup list, if not visible the item clicked becomes the first tab. Drag from the popup list is implemented. Drag and drop into a navigator container places the tab as the first item.
With little effort you should be able to separate the tabBar from the navigator if your required to do so.
Doug has posted something similar over on his blog. I have tried to add some interesting things, but heck; it’s a tab navigator. I successfully abstained from looking at his implementation while finishing mine.
This one extends a few different components in order to achieve the desired effect. Here is what I ended up extending.
Tab
TabBar
TabNavigator
PopUpMenuButton
ProgrammaticSkin
HaloBorder
I haven’t overloaded this one with comments, so if you have questions feel free to ask.
The popup menu for the none visible tabs works as I had hoped. I didn’t add a scroll bar to the menu as I thought that if you need one; you should probably rethink your interface. To many tabs is certainly not a good thing. On average in my opinion a user will open between 5 and 12 tabs before they start doing cleanup.
It’ll use the icon and label specified in your container for display within the tab and popup menu.
Perhaps Doug will take this code; look it over and create a combined version that covers the broad spectrum of requirements for such a component. I’d be interested in collaborating with him on a couple other ideas I’ve got rolling around for future things. If you haven’t checked out his blog I suggest you do so. He has a couple of gems over there.
The one thing I wish would have been possible is with regards to the click event on a tab. There seems to be no way to properly have the tab close on mouse up. It seems to be set in stone that this is mouse down only. Normally it wouldn’t be a problem but it doesn’t allow me to conform to a standard action with regards to click hold mouse out button deactivation kind of interaction.
As most things here this is not tested in a production environment so post any bugs you stumble upon, enjoy.
Requires Flash 9 player.
Sample and Source : Extended Tab Navigator
I’ve got some big things coming for the next couple of posts. In the mean time hopefully some people can make use of this one.
EDIT: My bad, title spelling was wrong. I was wondering why It didn’t show up in the flex categories. Anyway I’ll re ping this. Hopefully it doesn’t re show. If it does, my apologies..
Jason Hawryluk
February 5, 2007 at 10:48 pm
I did the closeable thing a long time ago. I only mention it here because I have the tabs closing on mouse up — http://www.darronschall.com/weblog/archives/000244.cfm
Since my initial take on it this past September, I’ve worked on it to the point where it’s the “mother of all tab navigators”.. unfortunately, it was for a client and I can’t release it. However, if you and Doug combine efforts, I can probably throw my two cents in and polish up anything left out and we can re-create my “mother of all tab navigators” as code in the open domain.
February 5, 2007 at 10:54 pm
Nice. Yeah, looks like we were working on some of the same stuff at the same time. I like your proxy image for dragging a tab. And the dragging between controls and dragging from the popup menu is something I didn’t even think about.
I got caught up trying to make side tabs, but soon I’ll release the source to my version (soon = within a week).
February 5, 2007 at 10:59 pm
Darron,
That’s sounds great and I’m certainly willing to do what I can. I had a heck of a time trying to get the tabs closing on mouse up. Unfortunately didn’t get to an acceptable solution for that.
We’ll see what Doug has to say, I’m sure between us all we can get something close to the mother of all tab navigators.
Jason
February 5, 2007 at 11:03 pm
Doug,
Perhaps there are ways in which we can collaborate on some of these things as Darron proposed. Not quite sure where to start, but drop me a mail when you get time. Maybe RIAForge is a solution for this as it seems to be something quite popular.
February 5, 2007 at 11:36 pm
Hey great work. Also, in case you did not notice, moving tabs is off by one. IE: If you drag tab 2 between 5 & 6, it shows up AFTER 6. Just thought you would want to know. Thanks for contributing!!!
February 6, 2007 at 8:35 am
Pat,
Thanks. It does drop in the correct location, but it depends on where your mouse is at when you drop. I.e. if your more to the left then it’ll drop to the left. I’ll take some time this week and update it to properly portrait this with the drop indication. As well as add a couple new things.
Jason
February 6, 2007 at 11:16 am
Wow y’all – this is cool… i didn’t realize how cool until i woke up at 4am (early for me) and was lying there trying to go back to sleep when i realized this would be the perfect idea for the redesign of a site i’ve been wanting to redo… the old site is CFMX 7 based and uses flash forms, but it is clunky and this would be a much better visual tool in this case than a list grid with popup forms.
Way cool – i’ll be watching to see if you combine these into a super collaboration.
Mitch
February 8, 2007 at 6:49 am
[…] gotten ideas from various flexcoders threads, the sample posted on Flexible Experiments, the sample on code zen, darron schall’s demo, etc […]
July 23, 2007 at 8:25 pm
Seriously nice component. I was wondering what license you’ve released it under. I’m considering using it in a project of mine, but wanted to make sure this would be kosher. Thanks,
Brent
July 24, 2007 at 6:27 am
Brent,
Everything on this blog is considered creative commons unless otherwise stated, use anything here as you would like. For commercial purposes or otherwise.
I do appreciate your asking.
Cheers.
Jason
September 9, 2008 at 3:24 pm
Hi,this looks really cool.
i have a doubt. can we set some style for disabled tabs. i need to make the font for disabled tabs italic. but i could not find the way to do it. i tried using CSS but could not achieve it.
can you please help me out.
Thanks
-prashant
September 19, 2008 at 12:18 pm
[…] :: More info Jason Hawryluk :: Extended Tab Navigator :: Drag tabs from one instance to another :: More info Jason Hawryluk :: Tree With Spring Loaded Folders :: More info :: Update Joe Berkovitz & Todd […]
October 23, 2008 at 3:50 am
[…] Jason Hawryluk :: Extended Tab Navigator :: Drag tabs from one instance to another :: More info […]
October 25, 2008 at 11:12 am
[…] :: More info Jason Hawryluk :: Extended Tab Navigator :: Drag tabs from one instance to another :: More info Jason Hawryluk :: Tree With Spring Loaded Folders :: More info :: Update Joe Berkovitz & Todd […]
October 28, 2008 at 8:39 am
Hi,
There is maybe a BUG in your project. After create many tabs in container1, click item which refers to hidden tab in popup menu for several times, the content of container1 overlaps!
U can c following URL: http://www.flickr.com/photos/31851997@N03/2981087740/
October 28, 2008 at 8:41 am
I’m now working on the similar stuff, and I find the same bug as yours. It’s maybe a BUG of FLEX!
December 1, 2008 at 11:22 am
I am working on a project with the similar functionality and the same BUG:
http://flexrock.googlecode.com
pls check the BUG
January 29, 2009 at 4:44 pm
Hi, I need to do same tab showCloseButton = true and others showCloseButton = false in the same TabNavigator. It’s possible?
Thanks in advance.
October 18, 2009 at 5:38 pm
Cool. You made my day
May 11, 2010 at 3:25 pm
This is really helpful – thank you for sharing!
September 29, 2011 at 11:57 am
Gr8 work done….and exactly the thing I am looking for…I am new to flex…
how to see the source of this ?
September 29, 2011 at 11:58 am
Gr8 work done….and exactly the thing I am looking for…I am new to flex…
how to see the source of this ?